type Toptions_DATA$dataI = Toptions_VALUE$value | { [key: string]: Toptions_VALUE$value };
type Toptions_DATA$data = Toptions_VALUE$value | Array<Toptions_DATA$dataI>;
type Toptions_DATA$url_fn = (options: Toptions_DATA & { [key: PropertyKey]: any }) => string;

type Toptions_DATA = {
    /** 值 */
    value?: Toptions_VALUE$value | Array<Toptions_VALUE$value>;
    /** 数据请求地址 */
    url?: string | Toptions_DATA$url_fn;
    /** 数据 */
    data?: Toptions_DATA$data;
    /** 显示值键 */
    dataTextKey?: string;
    /** 数据值键 */
    dataValueKey?: string;
    /** true: 多选; false: 单选; null: 特殊的单选; */
    multiple?: boolean | null;
};

type Toptions_CDVP =
    Toptions__CVP
    & Toptions_DATA
    & {
    };

/**
 * 数据值控件基类
 * @description 模版类
 * @param <T> 子控件补充参数类型
 */
abstract class _CDVP_<T extends Toptions_CDVP> extends __CVP__<T> {

    /** 数据元素 */
    // @ts-ignore Property 'items' has no initializer and is not definitely assigned in the constructor.ts(2564)
    protected items: Array<HTMLElement>;

    /**
     * 渲染数据元素
     * @param dataI 数据
     * @param text 文本值
     * @param value 数据值
     */
    protected abstract item_render(dataI: Toptions_DATA$dataI, text: string, value: any): HTMLElement;

}
